The present invention is directed to a method and apparatus for the distributed control of processes and, in particular, to a system and method for the programmable control of multiple devices, each capable of independent operation and of performing a set of related functions or operations, to operate concurrently or sequentially and in cooperation to perform a predetermined task or operation.
There are a large number and wide variety of system or processes that are implemented through or dependent upon the concurrent or sequential cooperative operation or execution of a plurality of devices or process steps wherein each device or step is typically capable of operating or being performed independently and wherein many of the devices are characterized by a plurality of separately controllable functions or operations and the steps may be performed in a number of ways. Examples of such systems or processes include manufacturing or machining processes wherein a xe2x80x9cworkpiecexe2x80x9d, which may be a single component or an assembly of components, is operated upon sequentially or concurrently by several devices or tools in one or more steps or operations. Yet another example of such processes or systems include animatronic or robotic applications, such as used in museums, the motion picture industry and amusement parks wherein hydraulically, pneumatically or electrically or electronically controlled actuators or motors are used, for example, to simulate realistic motion, actions and operations of dinosaurs, animals, famous persons, or scaled models of various types. Other examples include chemical or manufacturing processes involving chemical, pressure or temperature controlled processes, such the manufacture of medicines and chemical products, photographic processing, and so on. Still other processes are involved in or include the processing of video, graphic or audio data, such as video or audio programming, communications, data collection and distribution, and text or graphic publishing, as in the newspaper, book or magazine industries.
The devices or tools involved in such processes, and which must be controlled to cooperatively perform a desired task or sequence of operations are typically each capable of independent operation and are each typically designed or intended to perform a single type of operation or function or a set or group of related operations or functions. Examples of such devices or tools may include drilling, grinding and milling heads, cutters, welders and soldering tools, laser devices and various devices for gripping or holding and positioning or translating a workpiece. Yet other examples of process devices may include valves, pumps, printers or printing presses, communications devices, data or video, graphic or audio storage devices. The devices may be, for example, hydraulically, pneumatically or electrically or electronically controlled and the controllable functions or operations of such devices may range, for example, from simple on/off control to rotational or translational movement along various axis, speed, direction and acceleration of movement, power and temperature, and so on. The devices may also sense or measure and indicate transitional or rotational position along various axis, acceleration, speed, and so on, while the primary function of yet other devices may be to sense or measure and indicate transitional or rotational position along various axis, acceleration, speed, and so on. Yet other devices may control temperature, pressure or the flow of chemicals or other fluids, printing processes, information display or presentation, communications operations, and so on.
A continuing problem in such systems and processes, however, is in controlling the operations and functions of the component devices to operate cooperatively to provide the desired results or to perform the desired tasks. Many such systems and processes of the prior art, for example, are program controlled by a single, central processor or computer which may receive position and motion information from the devices and which generates and provides control signals or commands to the devices to control operation of the devices. Such programs, however, are generally complex, time consuming and expensive to design and develop, to debug or to subsequently modify. Centralized control of processes is therefore frequently uneconomical to employ in the machining, manufacture or processing of relatively small numbers of xe2x80x9cworkpiecesxe2x80x9d or products. As a result, the machining, processing or manufacture of small quantities of workpieces or products, such as the machining of a prototype part or assembly, a limited printing of a book or magazine, or the processing of a small quantity of film, is generally performed under the direct control of a skilled, trained human operator or team of operators.
Yet other processes are implemented by individual, separate control of the process devices or steps, either sequentially by a single operator or cooperatively by a team of operators. An example of the first instance may be, for example, the machining of a prototype or limited number of xe2x80x9cworkpiecesxe2x80x9d by a skill machinist using one or more machining devices. This method, however, is typically slow and requires the services of a skilled and trained operator at each step, and is thereby expensive. An example of the second instance may be, for example, the filming of an animatronic scene in a film production, which are typically performed by team of individual operators, each controlling a few aspects of the animation. This method, however, typically requires many attempts before the necessary cooperation and coordination between the operators is achieved and a scene is successfully filed, so that the method is again slow and uncertain and is thereby frequently very expensive.
These problems of the prior art thereby limit the use of many processes because of the cost and time required to implement the processes as automated processes or the cost and time required for the processes to be performed by skilled, trained operators.
The present invention addresses these and other related problems of the prior art.
The present invention is directed to a method and apparatus for the distributed control of processes and, in particular, to a system and method for the programmable control of multiple devices, each capable of independent operation and of performing a set of related functions or operations, to operate concurrently or sequentially and in cooperation to perform a predetermined task or operation.
According to the present invention, a process is a sequence of process steps wherein each step is defined by one or more operations of one or more of the process devices. A device controller is associated with each process device wherein each device controller controls the operations of the associated process device and includes a process step memory for a storing a device process. Each device process includes one or more device steps wherein each device step corresponds to a process step and controls one or more corresponding operations of the associated process device. A master controller generates step execute identifiers to the device controllers and the device controllers are responsive to the step execute identifiers for cooperatively performing the corresponding device steps of the device processes, generating control outputs corresponding to the device steps to the associated process devices to direct the associated process devices to perform the device steps. In certain implementations of the present invention, a step execute identifier may further include one or more process controller identifiers identifying the process devices that are to execute a process step identified by a step execute identifier.
A process step typically includes at least one step command directing an operation to be performed by the associated process device and at least one control value indicating an operating state of the associated process device in performing the directed operation, and a device controller typically includes a device interface for translating the step commands and control values of each device step of a device process into control outputs for controlling operation of the associated process device.
In further aspects of the present invention, a step controller may be responsive to a device response output of the associated process device indicating a state of operation of the associated process device for indicating the completion of a device step. The device controller is in turn responsive to a device response output of the associated process device indicating a state of operation of the associated process device for indicating the completion of a device step. The master controller may then be responsive to the indications of the completion of the device steps of a process step by each of the process devices performing a process for generating a next step execute identifier to the device controllers.
In a still further aspect of the present invention, the device processes for the process devices may be generated by the master controller, wherein the master controller may include at least one input device for generating control inputs representing operations of a process device in a device step and a command processor that is responsive to the input device control inputs for generating the device steps of a device process for a process device. The master controller will then provide the device steps to the device controller of the process device for storage in the device controller process step memory.
In yet another implementation of the present invention, the device steps of at least some of the device processes may be generated at or in the process devices, wherein a device controller may include an input device for generating control inputs representing operations of the process device in one or more device steps. In this implementation, the step controller of the device controller will be responsive to the input device control inputs for generating corresponding device steps of a device process for the associated process device and indicating completion of the generation of the device step to the master controller. The master controller may then be responsive to an indication of the completion of the generation of a device step from the device controller for generating a process step write identifier to the device controllers, and the step controllers of one or more device controllers may be responsive to each process step write identifier from the master controller for storing a corresponding device step representing a state of operation of the associated process device in the device controller process step memory of the associated process device.